#ifndef ICOMMON_H__MINCOM__COMMONKIT__INCLUDED_
#define ICOMMON_H__MINCOM__COMMONKIT__INCLUDED_

namespace MinCOM
{

	interface ICommon
	{
		
		virtual result QueryInterface(RefIid iid, void** ppObject) = 0;
		
		virtual unsigned long AddRef() = 0;
		
		virtual unsigned long Release() = 0;

	};

	typedef ComPtr< ICommon > ICommonPtr;
	typedef ComPtr< ICommon, false > ICommonWeak;

	typedef const ICommonPtr& ICommonRef;
	typedef const ICommonWeak& ICommonWeakRef;

	// {3d24c25d-2c73-4a47-9264-a5d5b1bfdf75} 
	MC_DEFINE_GUID(IID_ICommon, 
	0x3d24c25d, 0x2c73, 0x4a47, 0x92, 0x64, 0xa5, 0xd5, 0xb1, 0xbf, 0xdf, 0x75);

}

#endif // !ICOMMON_H__MINCOM__COMMONKIT__INCLUDED_
